#类属性、类的私有属性；实例属性、实例的私有属性

class Developer:
    programing_language=None#类属性\类的私有属性
    busy=True#类属性
    tshirt=True#类属性
    __case="doing something_A"#声明类的私有属性
    __lotteryitems = ['mac', 'ipad', 'iphone']  ##声明类的私有属性，

    def __init__(self,hairs,color):#初始化
        self.__hairs=hairs#实例的私有属性
        self.color=color#实例的属性

    @classmethod
    def get_case(cls):  # 类方法,仅供类调用的方法
        return cls.__case  # 通过类方法获得类的私有属性

print(Developer.busy)#直接访问类的属性
# print(Developer.__case)#直接访问类的私有属性，会报错，不能这样直接访问
print(Developer._Developer__case)#这样格式才能访问，下划线-类名-私有属性名
print(Developer._Developer__lotteryitems)#访问类的私有属性

print("创建一个实例")
d_python=Developer(2345678,'yellow')#def __init__(self,hairs,color):初始化两个实例属性
d_python.programing_language='python'#实例属性

print(d_python.programing_language)#访问实例属性
print(d_python.busy)
print("访问实例属性color",d_python.color)#访问实例属性
print(d_python._Developer__hairs)#访问实例的私有属性
d_python.color='yellyell'#改变实例属性
print("再次 访问实例属性color",d_python.color)#再次访问实例属性

print(d_python.get_case())#通过类方法获得类的私有属性
print(Developer.get_case())#通过类方法获得类的私有属性
#类方法，类可以直接访问，实例也可以访问；

# print(Developer.color)#不行，这样访问init中的实例属性，不行
print(Developer.busy)#行，访问类属性
print(d_python.color)#行   访问init中的实例属性，color属性